/**
 * 获取枚举类型的值联合类型
 * @param enumObj 枚举对象
 * @returns 枚举值的联合类型
 */
export type EnumValues<T extends Record<string, string | number>> = T[keyof T];

/**
 * 获取枚举的所有值数组
 * @param enumObj 枚举对象
 * @returns 枚举值的数组
 */
export function getEnumValues<T extends Record<string, string | number>>(
  enumObj: T,
): EnumValues<T>[] {
  return Object.values(enumObj).filter(
    (value): value is EnumValues<T> =>
      typeof value === 'number' || typeof value === 'string',
  );
}
